package com.lonely.api.mes.model.dto;

import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * @author : 黄志标
 * @date: 2025/11/12 16:51
 * @description: 款式同步接口请求实体
 */
@Data
public class SynchronizedStyleDTO implements Serializable {

    /**
     * 产品名称
     */
    private String prodName;

    /**
     * 产品编号
     */
    private String prodno;

    /**
     * 备注
     */
    private String remark;

    /**
     * 款式名称
     */
    private String stylName;

    /**
     * 款式来源
     */
    private String styleFrom;

    /**
     * 款式编号
     */
    private String stylno;

    /**
     * 款式唯一主键(来源系统)
     */
    private String thirdUid;

    /**
     * 款式品牌
     */
    private String brandId;

    /**
     * 款式面料
     */
    private String mtrlno;

    /**
     * 款式季节
     */
    private String season;

    /**
     * 款式物料
     */
    private List<StyleBom> styleBomlist;

    /**
     * 款式文件
     */
    private List<StyleDoc> styleDoclist;

    /**
     * 款式工序
     */
    private List<StyleOper> styleOperlist;

    /**
     * 款式分支
     */
    private List<StylePart> stylePartlist;

    /**
     * 款式工艺
     */
    private List<StyleTech> styleTechlist;

    /**
     * 款式BOM
     */
    @Data
    public static class StyleBom implements Serializable {

        /**
         * 是否主料
         */
        private Boolean mainMterial;

        /**
         * 物料编号
         */
        private String mtrlcd;

        /**
         * 物料名称
         */
        private String mtrnam;

        /**
         * 分类名称
         */
        private String mtsrnm;

        /**
         * 分类编号
         */
        private String mtsrno;

        /**
         * 物料用途
         */
        private String purpos;

        /**
         * 物料单位
         */
        private String unitnm;

        /**
         * 物料单耗
         */
        private String wstrat;
    }


    /**
     * 款式文件
     */
    @Data
    public static class StyleDoc implements Serializable {

        /**
         * 业务类型
         */
        private String bustype;

        /**
         * 文件名称
         */
        private String filename;

        /**
         * 文件类型
         */
        private String filetype;

        /**
         * 文件地址
         */
        private String fileurl;
    }

    /**
     * 款式工序
     */
    @Data
    public static class StyleOper implements Serializable {
        /**
         * 工序编号
         */
        private String operId;

        /**
         * 工序名称
         */
        private String operName;

        /**
         * 加工设备类型
         */
        private String macType;

        /**
         * 加工部件编号
         */
        private String partId;

        /**
         * 加工部件名称
         */
        private String partName;

        /**
         * 加工顺序
         */
        private Long sortNo;

        /**
         * 标准工价
         */
        private Double stdPrice;

        /**
         * 标准工时
         */
        private Double stdmValue;

        /**
         * 加工工段编号
         */
        private String wctyCd;

        /**
         * 加工工段名称
         */
        private String wctyName;
    }


    /**
     * 款式分支
     */
    @Data
    public static class StylePart implements Serializable {
        /**
         * 分支名称
         */
        private String brannm;

        /**
         * 分支编号
         */
        private String branno;

        /**
         * 是否主分支
         */
        private Boolean mainbranch;
    }

    /**
     * 款式工艺
     */
    @Data
    public static class StyleTech implements Serializable {

        /**
         * 工艺图名称1
         */
        private String imgName1;

        /**
         * 工艺图名称2
         */
        private String imgName2;

        /**
         * 工艺图名称3
         */
        private String imgName3;

        /**
         * 工艺图类型1
         */
        private String imgType1;

        /**
         * 工艺图类型2
         */
        private String imgType2;

        /**
         * 工艺图类型3
         */
        private String imgType3;

        /**
         * 部件编号
         */
        private String partId;

        /**
         * 部件名称
         */
        private String partName;

        /**
         * 工艺图地址1
         */
        private String stImag1;

        /**
         * 工艺图地址2
         */
        private String stImag2;

        /**
         * 工艺图地址3
         */
        private String stImag3;

        /**
         * 工艺内容
         */
        private String techDetail;

        /**
         * 工段编号
         */
        private String wctyCd;

        /**
         * 工段名称
         */
        private String wctyName;

    }


}
